#include <stdint.h>

#include "keycode_names.h"
#include "keycode.h"

const __code char* get_keycode_name(uint8_t kc)
{
	switch(kc)
	{
	case KC_NO:		return "NO";
	case KC_ROLL_OVER:		return "ROLL_OVER";
	case KC_POST_FAIL:		return "POST_FAIL";
	case KC_UNDEFINED:		return "UNDEFINED";
	case KC_A:		return "A";
	case KC_B:		return "B";
	case KC_C:		return "C";
	case KC_D:		return "D";
	case KC_E:		return "E";
	case KC_F:		return "F";
	case KC_G:		return "G";
	case KC_H:		return "H";
	case KC_I:		return "I";
	case KC_J:		return "J";
	case KC_K:		return "K";
	case KC_L:		return "L";
	case KC_M:		return "M";
	case KC_N:		return "N";
	case KC_O:		return "O";
	case KC_P:		return "P";
	case KC_Q:		return "Q";
	case KC_R:		return "R";
	case KC_S:		return "S";
	case KC_T:		return "T";
	case KC_U:		return "U";
	case KC_V:		return "V";
	case KC_W:		return "W";
	case KC_X:		return "X";
	case KC_Y:		return "Y";
	case KC_Z:		return "Z";
	case KC_1:		return "1";
	case KC_2:		return "2";
	case KC_3:		return "3";
	case KC_4:		return "4";
	case KC_5:		return "5";
	case KC_6:		return "6";
	case KC_7:		return "7";
	case KC_8:		return "8";
	case KC_9:		return "9";
	case KC_0:		return "0";
	case KC_ENTER:		return "ENTER";
	case KC_ESCAPE:		return "ESCAPE";
	case KC_BSPACE:		return "BSPACE";
	case KC_TAB:		return "TAB";
	case KC_SPACE:		return "SPACE";
	case KC_MINUS:		return "MINUS";
	case KC_EQUAL:		return "EQUAL";
	case KC_LBRACKET:		return "LBRACKET";
	case KC_RBRACKET:		return "RBRACKET";
	case KC_BSLASH:		return "BSLASH";
	case KC_NONUS_HASH:		return "NONUS_HASH";
	case KC_SCOLON:		return "SCOLON";
	case KC_QUOTE:		return "QUOTE";
	case KC_GRAVE:		return "GRAVE";
	case KC_COMMA:		return "COMMA";
	case KC_DOT:		return "DOT";
	case KC_SLASH:		return "SLASH";
	case KC_CAPSLOCK:		return "CAPSLOCK";
	case KC_F1:		return "F1";
	case KC_F2:		return "F2";
	case KC_F3:		return "F3";
	case KC_F4:		return "F4";
	case KC_F5:		return "F5";
	case KC_F6:		return "F6";
	case KC_F7:		return "F7";
	case KC_F8:		return "F8";
	case KC_F9:		return "F9";
	case KC_F10:		return "F10";
	case KC_F11:		return "F11";
	case KC_F12:		return "F12";
	case KC_PSCREEN:		return "PSCREEN";
	case KC_SCKLOCK:		return "SCKLOCK";
	case KC_PAUSE:		return "PAUSE";
	case KC_INSERT:		return "INSERT";
	case KC_HOME:		return "HOME";
	case KC_PGUP:		return "PGUP";
	case KC_DELETE:		return "DELETE";
	case KC_END:		return "END";
	case KC_PGDOWN:		return "PGDOWN";
	case KC_RIGHT:		return "RIGHT";
	case KC_LEFT:		return "LEFT";
	case KC_DOWN:		return "DOWN";
	case KC_UP:		return "UP";
	case KC_NUMLOCK:		return "NUMLOCK";
	case KC_KP_SLASH:		return "KP_SLASH";
	case KC_KP_ASTERISK:		return "KP_ASTERISK";
	case KC_KP_MINUS:		return "KP_MINUS";
	case KC_KP_PLUS:		return "KP_PLUS";
	case KC_KP_ENTER:		return "KP_ENTER";
	case KC_KP_1:		return "KP_1";
	case KC_KP_2:		return "KP_2";
	case KC_KP_3:		return "KP_3";
	case KC_KP_4:		return "KP_4";
	case KC_KP_5:		return "KP_5";
	case KC_KP_6:		return "KP_6";
	case KC_KP_7:		return "KP_7";
	case KC_KP_8:		return "KP_8";
	case KC_KP_9:		return "KP_9";
	case KC_KP_0:		return "KP_0";
	case KC_KP_DOT:		return "KP_DOT";
	case KC_NONUS_BSLASH:		return "NONUS_BSLASH";
	case KC_APPLICATION:		return "APPLICATION";
	case KC_POWER:		return "POWER";
	case KC_KP_EQUAL:		return "KP_EQUAL";
	case KC_F13:		return "F13";
	case KC_F14:		return "F14";
	case KC_F15:		return "F15";
	case KC_F16:		return "F16";
	case KC_F17:		return "F17";
	case KC_F18:		return "F18";
	case KC_F19:		return "F19";
	case KC_F20:		return "F20";
	case KC_F21:		return "F21";
	case KC_F22:		return "F22";
	case KC_F23:		return "F23";
	case KC_F24:		return "F24";
	case KC_EXECUTE:		return "EXECUTE";
	case KC_HELP:		return "HELP";
	case KC_MENU:		return "MENU";
	case KC_SELECT:		return "SELECT";
	case KC_STOP:		return "STOP";
	case KC_AGAIN:		return "AGAIN";
	case KC_UNDO:		return "UNDO";
	case KC_CUT:		return "CUT";
	case KC_COPY:		return "COPY";
	case KC_PASTE:		return "PASTE";
	case KC_FIND:		return "FIND";
	case KC_LOCKING_CAPS:		return "LOCKING_CAPS";
	case KC_LOCKING_NUM:		return "LOCKING_NUM";
	case KC_LOCKING_SCROLL:		return "LOCKING_SCROLL";
	case KC_KP_COMMA:		return "KP_COMMA";
	case KC_KP_EQUAL_AS400:		return "KP_EQUAL_AS400";
	case KC_INT1:		return "INT1";
	case KC_INT2:		return "INT2";
	case KC_INT3:		return "INT3";
	case KC_INT4:		return "INT4";
	case KC_INT5:		return "INT5";
	case KC_INT6:		return "INT6";
	case KC_INT7:		return "INT7";
	case KC_INT8:		return "INT8";
	case KC_INT9:		return "INT9";
	case KC_LANG1:		return "LANG1";
	case KC_LANG2:		return "LANG2";
	case KC_LANG3:		return "LANG3";
	case KC_LANG4:		return "LANG4";
	case KC_LANG5:		return "LANG5";
	case KC_LANG6:		return "LANG6";
	case KC_LANG7:		return "LANG7";
	case KC_LANG8:		return "LANG8";
	case KC_LANG9:		return "LANG9";
	case KC_ALT_ERASE:		return "ALT_ERASE";
	case KC_SYSREQ:		return "SYSREQ";
	case KC_CANCEL:		return "CANCEL";
	case KC_CLEAR:		return "CLEAR";
	case KC_PRIOR:		return "PRIOR";
	case KC_RETURN:		return "RETURN";
	case KC_SEPARATOR:		return "SEPARATOR";
	case KC_OUT:		return "OUT";
	case KC_OPER:		return "OPER";
	case KC_CLEAR_AGAIN:		return "CLEAR_AGAIN";
	case KC_CRSEL:		return "CRSEL";
	case KC_EXSEL:		return "EXSEL";
	case KC_LCTRL:		return "LCTRL";
	case KC_LSHIFT:		return "LSHIFT";
	case KC_LALT:		return "LALT";
	case KC_LGUI:		return "LGUI";
	case KC_RCTRL:		return "RCTRL";
	case KC_RSHIFT:		return "RSHIFT";
	case KC_RALT:		return "RALT";
	case KC_RGUI:		return "RGUI";
	}

	return "<none>";
}
